﻿using Renci.Data.Interop.OpenGIS.Swe_102;

namespace Renci.Data.Interop.OpenGIS.Gml_32
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(TypeName = "ValueArrayPropertyType", Namespace = "http://www.opengis.net/gml/3.2")]
    [System.Xml.Serialization.XmlRootAttribute("valueComponents", Namespace = "http://www.opengis.net/gml/3.2", IsNullable = false)]
    public class ValueArrayPropertyType : IOwnershipAttributeGroup
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ValueArrayPropertyType"/> class.
        /// </summary>
        public ValueArrayPropertyType()
        {
            this.Owns = false;
        }

        private System.Collections.ObjectModel.Collection<object> _values = new System.Collections.ObjectModel.Collection<object>();
        /// <remarks/>
        //[System.Xml.Serialization.XmlElementAttribute("AbstractValue")]        
        //<element name="AbstractScalarValue" type="anyType" abstract="true" substitutionGroup="gml:AbstractValue">
        [System.Xml.Serialization.XmlElementAttribute("StationName", Type = typeof(Noaa.Ioos_061.StationNameType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("Organization", Type = typeof(Noaa.Ioos_061.OrganizationType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("StationId", Type = typeof(Noaa.Ioos_061.StationIdType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("SensorId", Type = typeof(Noaa.Ioos_061.SensorIdType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("SamplingRate", Type = typeof(Noaa.Ioos_061.SamplingRateScalarType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("ReportingInterval", Type = typeof(Noaa.Ioos_061.ReportingIntervalScalarType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("VerticalDatum", Type = typeof(Noaa.Ioos_061.VerticalDatumScalarType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("VerticalPosition", Type = typeof(Noaa.Ioos_061.VerticalPositionScalarType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("ProcessingLevel", Type = typeof(Noaa.Ioos_061.ProcessingLevelType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("Text", Type = typeof(Noaa.Ioos_061.NamedTextType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("Integer", Type = typeof(Noaa.Ioos_061.NamedIntegerType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("Count", Type = typeof(Noaa.Ioos_061.NamedNonNegativeIntegerType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("Quantity", Type = typeof(Noaa.Ioos_061.NamedQuantityType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        [System.Xml.Serialization.XmlElementAttribute("Context", Type = typeof(Noaa.Ioos_061.NamedContextType), Namespace = "http://www.noaa.gov/ioos/0.6.1", IsNullable = true)]
        //[System.Xml.Serialization.XmlElementAttribute("Boolean", Type=typeof(AbstractScalarValue), IsNullable=true)]
        //[System.Xml.Serialization.XmlElementAttribute("Category", Type=typeof(AbstractScalarValue), IsNullable=true)]
        //[System.Xml.Serialization.XmlElementAttribute("Count", Type=typeof(AbstractScalarValue), IsNullable=true)]
        //[System.Xml.Serialization.XmlElementAttribute("Quantity", Type=typeof(AbstractScalarValue), IsNullable=true)]
        //<element name="AbstractScalarValueList" type="anyType" abstract="true" substitutionGroup="gml:AbstractValue">
        [System.Xml.Serialization.XmlElementAttribute("NamedQuantityList", Type = typeof(Noaa.Ioos_061.NamedQuantityListType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("BooleanList", Type = typeof(BooleanOrNilReasonListType))]
        [System.Xml.Serialization.XmlElementAttribute("CategoryList", Type = typeof(CodeOrNilReasonListType))]
        [System.Xml.Serialization.XmlElementAttribute("CountList", Type = typeof(IntegerOrNilReasonListType))]
        [System.Xml.Serialization.XmlElementAttribute("QuantityList", Type = typeof(MeasureOrNilReasonListType))]
        //<element name="CompositeValue" type="gml:CompositeValueType" substitutionGroup="gml:AbstractValue">
        [System.Xml.Serialization.XmlElementAttribute("Composite", Type = typeof(CompositeType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("CompositeValue", Type = typeof(CompositeValueType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("CompositeContext", Type = typeof(CompositeContextType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Composite", Type = typeof(Noaa.Ioos_061.CompositeType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("CompositeValue", Type = typeof(Noaa.Ioos_061.CompositeValueType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("CompositeContext", Type = typeof(Noaa.Ioos_061.CompositeContextType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("ValueArray", Type = typeof(ValueArrayType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Array", Type = typeof(Noaa.Ioos_061.ArrayType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("ValueArray", Type = typeof(Noaa.Ioos_061.ValueArrayType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("ContextArray", Type = typeof(Noaa.Ioos_061.ContextArrayType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("ValueArrayOfDefinedComposites", Type = typeof(Noaa.Ioos_061.ValueArrayOfDefinedCompositesType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        [System.Xml.Serialization.XmlElementAttribute("CategoryExtent", Type = typeof(CategoryExtentType))]
        [System.Xml.Serialization.XmlElementAttribute("CountExtent", Type = typeof(CountExtentType))]
        [System.Xml.Serialization.XmlElementAttribute("QuantityExtent", Type = typeof(QuantityExtentType))]
        public System.Collections.ObjectModel.Collection<object> Values { get { return this._values; } }

        private System.Collections.ObjectModel.Collection<AbstractGeometryType> _abstractGeometries = new System.Collections.ObjectModel.Collection<AbstractGeometryType>();
        /// <remarks/>
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometry")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometricAggregate", Type = typeof(AbstractGeometricAggregateType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiGeometry", Type = typeof(MultiGeometryType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiPoint", Type = typeof(MultiPointType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiCurve", Type = typeof(MultiCurveType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiSurface", Type = typeof(MultiSurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiSolid", Type = typeof(MultiSolidType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometricPrimitive", Type = typeof(AbstractGeometricPrimitiveType))]
        [System.Xml.Serialization.XmlElementAttribute("Point", Type = typeof(PointType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractCurve", Type = typeof(AbstractCurveType))]
        [System.Xml.Serialization.XmlElementAttribute("LineString", Type = typeof(LineStringType))]
        [System.Xml.Serialization.XmlElementAttribute("CompositeCurve", Type = typeof(CompositeCurveType))]
        [System.Xml.Serialization.XmlElementAttribute("Curve", Type = typeof(CurveType))]
        [System.Xml.Serialization.XmlElementAttribute("OrientableCurve", Type = typeof(OrientableCurveType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractSurface", Type = typeof(AbstractSurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("Polygon", Type = typeof(PolygonType))]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSurface", Type = typeof(CompositeSurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("Surface", Type = typeof(SurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("OrientableSurface", Type = typeof(OrientableSurfaceType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractSolid", Type = typeof(AbstractSolidType))]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSolid", Type = typeof(CompositeSolidType))]
        [System.Xml.Serialization.XmlElementAttribute("Solid", Type = typeof(SolidType))]
        [System.Xml.Serialization.XmlElementAttribute("GeometricComplex", Type = typeof(GeometricComplexType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractImplicitGeometry", Type = typeof(AbstractGeometryType))]
        [System.Xml.Serialization.XmlElementAttribute("Grid", Type = typeof(GridType))]
        public System.Collections.ObjectModel.Collection<AbstractGeometryType> Geometries { get { return this._abstractGeometries; } }

        private System.Collections.ObjectModel.Collection<AbstractTimeObjectType> _abstractTimeObjects = new System.Collections.ObjectModel.Collection<AbstractTimeObjectType>();
        /// <remarks/>
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeObject", typeof(AbstractTimeObjectType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimePrimitive", Type = typeof(AbstractTimePrimitiveType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeGeometricPrimitive", Type = typeof(AbstractTimeGeometricPrimitiveType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeInstant", Type = typeof(TimeInstantType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimePeriod", Type = typeof(TimePeriodType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeTopologyPrimitive", Type = typeof(AbstractTimeTopologyPrimitiveType))]
        [System.Xml.Serialization.XmlElementAttribute("TimeNode", Type = typeof(TimeNodeType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeEdge", Type = typeof(TimeEdgeType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeComplex", Type = typeof(AbstractTimeComplexType))]
        [System.Xml.Serialization.XmlElementAttribute("TimeTopologyComplex", Type = typeof(TimeTopologyComplexType))]
        [System.Xml.Serialization.XmlElementAttribute("TimeGeometricComplex", Type = typeof(TimeGeometricComplexType), Namespace = "http://www.opengis.net/swe/1.0.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeGrid", Type = typeof(TimeGridType), Namespace = "http://www.opengis.net/swe/1.0.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeAggregate", Type = typeof(TimeAggregateType), Namespace = "http://www.opengis.net/swe/1.0.2")]
        public System.Collections.ObjectModel.Collection<AbstractTimeObjectType> TimeObjects { get { return this._abstractTimeObjects; } }

        private System.Collections.ObjectModel.Collection<string> _nulls = new System.Collections.ObjectModel.Collection<string>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Null")]
        public System.Collections.ObjectModel.Collection<string> Nulls { get { return this._nulls; } }

        #region IOwnershipAttributeGroup Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("owns", Namespace = "http://www.opengis.net/gml/3.2")]
        [System.ComponentModel.DefaultValueAttribute(false)]
        public bool Owns { get; set; }

        #endregion
    }
}
